package com.frejoys.common.dto.admin;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.math.BigDecimal;

@Data
public class StoreActivityAddDto {
    @NotNull(message = "{600}")
    @Schema(type = "Integer", name = "storeId", description = "店铺id", required = true, defaultValue = "1")
    private Integer storeId;

    @NotNull(message = "{600}")
    @Schema(type = "Float", name = "startRatio", description = "起始比例", required = true, defaultValue = "1")
    private Float startRatio;

    @NotNull(message = "{600}")
    @Schema(type = "Float", name = "endRatio", description = "结束比例", required = true, defaultValue = "1")
    private Float endRatio;

    @NotNull(message = "{600}")
    @Schema(type = "Float", name = "rebateRatio", description = "返利比例", required = true, defaultValue = "1")
    private Float rebateRatio;

    @NotNull(message = "{600}")
    @Schema(type = "BigDecimal", name = "rebateMaxMoney", description = "返利最大单笔金额限制，0无限制", required = true, defaultValue = "0")
    private BigDecimal rebateMaxMoney;

    @NotNull(message = "{600}")
    @Schema(type = "Float", name = "promotionRatio", description = "推广比例", required = true, defaultValue = "1")
    private Float promotionRatio;

    @NotBlank(message = "{600}")
    @Schema(type = "String", name = "startTime", description = "活动开始时间", required = true, defaultValue = "2023-11-30 12:00:00")
    private String startTime;

    @NotBlank(message = "{600}")
    @Schema(type = "String", name = "endTime", description = "活动结束时间", required = true, defaultValue = "2023-11-30 12:00:00")
    private String endTime;

    @NotNull(message = "{600}")
    @Schema(type = "Integer", name = "type", description = "活动类型：1排队返利", required = true, defaultValue = "1")
    private Integer type;

    @NotNull(message = "{600}")
    @Schema(type = "Integer", name = "allowCount", description = "允许的总返利人数", required = true, defaultValue = "1")
    private Integer allowCount;
}
